package singleton;
/*
单例模式:
    优点:1.在内存中只有一个对象,节省内存空间
        2.避免频繁的创建销毁对象,提高性能
        3.避免对共享资源的多重占用
    缺点:1.扩展比较困难
        2.如果实例化后的对象长时间不利用,系统将默认为垃圾进行回收,造成对象状态丢失
使用场景:
    1.创建对象时占用资源过多,但同时有需要用到该类对象
    2.对系统内资源要求统一读写,如读写配置信息
    3.当多个实例存在可能引起程序逻辑错误,如号码生成器
 */

//单例模式(可能存在线程风险)
//懒汉式:创建私有静态实例的时候不会直接实例化对象  典型的时间换空间
public class SingletonTwo {
    //1.创建类中的私有构造方法
    private SingletonTwo(){

    }
    //2.创建静态的该类实例对象
    private static SingletonTwo instance=null;

    //3.创建开放的静态方法提供实例化对象
    //懒汉式实例化对象:判断实例的有效性,是否需要实例化对象
    public static SingletonTwo getInstance(){
        if (instance==null){
            instance=new SingletonTwo();
        }
        return instance;
    }

}
